package com.iocup.keybastion.sso.config;

import lombok.Getter;
import lombok.Setter;

import java.util.ArrayList;
import java.util.List;

/**
 * @author xyjxust
 * @create 2022/3/11 14:05
 **/
@Setter
@Getter
public class SsoProperties {
    /**
     * 配置 Server 端单点登录授权地址
     */
    private  String authUrl = "http://b.server.com:8181/sso/auth";

    /**
     *
     */
    private  String loginUrl = "/loginPage";
    /**
     * 配置 Server 端的 ticket 校验地址
     */
    private String checkTicketUrl = "http://b.server.com:8181/sso/checkTicket";
    /**
     * 配置sso客户端的回调地址，解析 ticket并返回用户信息
     */
    private String callbackUrl = "http://a.pine.com:8080/sso/callback";

    /**
     * 配置 Server 端查询 userinfo 地址
     */
    private String userinfoUrl;

    /**
     * 配置 Server 端单点注销地址
     */
    private String serveLogoutUrl = "http://b.server.com:8181/sso/logout";

    /**
     * 配置当前 Client 端的单点注销回调URL （为空时自动获取）
     */
    private String clientLogoutCall;

    /**
     * 当前client端的登录地址
     */
    private String clientLoginUrl = "/sso/login";
    /**
     * ticket刷新校验时长，单位秒，默认3分钟
     */
    private int ticketValiditySeconds = 300;

    /**
     * 客户端id
     */
    private String clientId;
    /**
     * 客户端密钥
     */
    private String clientSecret;
    /**
     * state默认的过期时间为2分钟
     */
    private int stateExpire = 2 * 60;

    /**
     * 是否时前后端分离模式
     */
    private boolean frontSep = false;

    /**
     * 是否时客户端获取权限信息
     */
    private boolean clientGetPermission = true;


    private List<Client> clients = new ArrayList<>();
}
